﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Web.Security;

public partial class WebUserControl_LikeWebUserControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            bindData();
        }
    }

    public void bindData()
    {
        int MaDV = int.Parse(Session["MaDV"].ToString());
        string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        SqlCommand com = new SqlCommand();
        com.Connection = conn;
        com.CommandText = "sp_CountLikeandDislike";
        com.CommandType = CommandType.StoredProcedure;
        com.Parameters.AddWithValue("@MaDV", MaDV);
        com.Parameters.AddWithValue("@Username", HttpContext.Current.User.Identity.Name);
        SqlParameter outputParam = new SqlParameter("@Me", SqlDbType.Int) {
            Direction = ParameterDirection.Output 
        };
        com.Parameters.Add(outputParam);
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = com;
        DataSet ds = new DataSet();
        da.Fill(ds);
        int k =int.Parse(outputParam.Value.ToString());
        if (k == 1)
        {
            CountLikeLabel.Text = ds.Tables[0].Rows[0]["numLike"].ToString() + " người thích, trong đó có bạn";
            CountDislikeLabel.Text = ds.Tables[0].Rows[0]["numDisLike"].ToString() + " người không thích";
        }
        else if (k == 0)
        {
            CountLikeLabel.Text = ds.Tables[0].Rows[0]["numLike"].ToString() + " người thích";
            CountDislikeLabel.Text = ds.Tables[0].Rows[0]["numDisLike"].ToString() + " người không thích, trong đó có bạn";
        }
        else
        {
            CountLikeLabel.Text = ds.Tables[0].Rows[0]["numLike"].ToString() + "người thích";
            CountDislikeLabel.Text = ds.Tables[0].Rows[0]["numDisLike"].ToString() + " người không thích";
        }
        conn.Close();
    }

    protected void LikeButton_Click(object sender, EventArgs e)
    {
        if (HttpContext.Current.User.Identity.Name.Equals(""))
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Redit", "alert('Bạn phải đăng nhập mới có thể bỏ phiếu Thích hoặc Không thích');", true);
            return;
        }
        
        int MaDV = int.Parse(Session["MaDV"].ToString());
        string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        SqlCommand com = new SqlCommand();
        com.Connection = conn;
        com.CommandText = "sp_LikeorDisLike";
        string user = HttpContext.Current.User.Identity.Name;
        com.Parameters.AddWithValue("@MaDV", MaDV);
        com.Parameters.AddWithValue("@Username", HttpContext.Current.User.Identity.Name);
        com.Parameters.Add("@Selection", SqlDbType.Bit).Value=1;
        com.CommandType = CommandType.StoredProcedure;
        try
        {
            int check = com.ExecuteNonQuery();
            conn.Close();
            bindData();
        }
        catch (Exception)
        {
            Response.Redirect("Error when post comment");
            conn.Close();
        }
    }
    protected void DislikeButton_Click(object sender, EventArgs e)
    {
        if (HttpContext.Current.User.Identity.Name.Equals(""))
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Redit", "alert('Bạn phải đăng nhập mới có thể bỏ phiếu Thích hoặc Không thích');", true);
            return;
        }

        int MaDV = int.Parse(Session["MaDV"].ToString());
        string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        SqlCommand com = new SqlCommand();
        com.Connection = conn;
        com.CommandText = "sp_LikeorDisLike";
        string user = HttpContext.Current.User.Identity.Name;
        com.Parameters.AddWithValue("@Username", HttpContext.Current.User.Identity.Name);
        com.Parameters.AddWithValue("@MaDV", MaDV);
        com.Parameters.AddWithValue("@Selection", 0);
        com.CommandType = CommandType.StoredProcedure;
        try
        {
            int check = com.ExecuteNonQuery();
            conn.Close();
            bindData();
        }
        catch (Exception)
        {
            Response.Redirect("Error when post comment");
            conn.Close();
        }
    }
}